package com.mai4j.maiadmin.model.http.datatables;

import lombok.Getter;
import lombok.Setter;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Created by 席有芳 on 2021/11/28.
 * 条件
 *
 * @author 席有芳
 */
@Getter
@Setter
public class Condition {

    public enum Comparator {
        GT, // 大于 > value
        GE, // 不小于 >= value
        LT, // 小于 < value
        LE, // 不大于 <= value
        EQ, // 等于 = value
        NEQ, // 不等于 = value
        LK, // 相似 like '%value%'
        RLK, // 相似 like 'value%'
        NLK, //  not like 'value%'
        BETWEEN, //  BETWEEN
    }

    public enum Connect {
        AND,
        OR
    }

    public enum DataType {
        NUMBER,
        STRING,
        DATE
    }


    /**
     * 列名称
     */
    private String column;
    /**
     * 值
     */
    private Object value;
    /**
     * true 不过滤空值, false 过滤空值
     */
    private boolean required;
    /**
     * 符号
     */
    private Comparator comparator;
    /**
     * 连接
     */
    private Connect connect;
    /**
     * 数据类型
     */
    private DataType dataType;
    /**
     * 组合
     */
    private Map<String, Condition> combo = new LinkedHashMap<>();
}
